home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / gui / muibuilderv11.lha / muibuilder / mb / e / Application.e next >
Text File  |  1994-03-07  |  2KB  |  80 lines

  1. /******************************************************************************
  2.     Here is an example of an "environnement file". All you have to do, si to
  3. fill it with :
  4.     - use MUIBuilder+GenCodeE to generate the create_app() function
  5.     - add the code for your application !!!
  6. ******************************************************************************/
  7.  
  8. OPT OSVERSION=37
  9.  
  10.     /* Module definitions */
  11. MODULE 'muimaster', 'libraries/mui'
  12. MODULE 'utility/tagitem', 'utility/hooks'
  13. MODULE 'intuition/classes', 'intuition/classusr'
  14.  
  15.     /* Error handling */
  16. ENUM NO_LIBRARY, MUI_APPLICATION_FAILURE
  17. RAISE   NO_LIBRARY              IF OpenLibrary()=NIL,
  18.         MUI_APPLICATION_FAILURE IF Mui_NewObjectA()=NIL
  19.  
  20.     /* Constant definitions */
  21. CONST MUI_TRUE = 1
  22.  
  23.     /* Global variables */
  24. /*MUIB*/
  25.  
  26.  
  27.     /* Main procedure */
  28. PROC main() HANDLE
  29.  
  30.     DEF signal, result_DoMethod, running = TRUE
  31.  
  32.     muimasterbase := OpenLibrary('muimaster.library', 0)
  33.     create_app()
  34.  
  35.     WHILE running
  36.         result_DoMethod := doMethod( app, [ MUIM_Application_Input, {signal} ] )
  37.         SELECT result_DoMethod
  38.             CASE MUIV_Application_ReturnID_Quit
  39.                 running := FALSE
  40.         ENDSELECT
  41.         IF (running AND signal) THEN Wait( signal )
  42.     ENDWHILE
  43.  
  44.     Mui_DisposeObject( app )
  45.     CloseLibrary( muimasterbase )
  46.  
  47. EXCEPT
  48.     SELECT exception
  49.         CASE NO_LIBRARY
  50.         CASE MUI_APPLICATION_FAILURE
  51.     ENDSELECT
  52. ENDPROC
  53.  
  54.  
  55.     /* Procedure generated by GenCodeE which creates your application */
  56. PROC create_app()
  57. ENDPROC
  58.  
  59.  
  60.     /* DoMethod() function */
  61. PROC doMethod( obj:PTR TO object, msg:PTR TO msg )
  62.  
  63.     DEF h:PTR TO hook, o:PTR TO object, dispatcher
  64.  
  65.     IF obj
  66.         o := obj-SIZEOF object     /* instance data is to negative offset */
  67.         h := o.class
  68.         dispatcher := h.entry      /* get dispatcher from hook in iclass */
  69.         MOVEA.L h,A0
  70.         MOVEA.L msg,A1
  71.         MOVEA.L obj,A2           /* probably should use CallHookPkt, but the */
  72.         MOVEA.L dispatcher,A3    /*   original code (DoMethodA()) doesn't. */
  73.         JSR (A3)                 /* call classDispatcher() */
  74.         MOVE.L D0,o
  75.         RETURN o
  76.     ENDIF
  77.  
  78. ENDPROC NIL
  79.  
  80.